﻿namespace Refract.UI.Docking
{
    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;

    using Refract.Event;

    public interface IDock
    {
        #region Methods

        bool CanDock(FrameworkElement element, Point position);

        bool Dock(FrameworkElement element, Point position, SimpleCallback dockCompletedCallback = null);

        bool Hover(FrameworkElement element, Point position, SimpleCallback dockCompletedCallback = null);

        bool Undock(FrameworkElement element, Point position, SimpleCallback dockCompletedCallback = null);

        bool Unhover(FrameworkElement element, Point position, SimpleCallback dockCompletedCallback = null);

        #endregion Methods
    }
}